package com.jumi.microservice.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jumi.microservice.domain.Priority;
import com.jumi.microservice.domain.dto.PriorityDTO;
import com.jumi.microservice.domain.vo.PriorityVO;

import java.util.List;

/**
 * <p>
 * 权限表 服务类
 * </p>
 *
 * @author liuz
 * @since 2020-07-18
 */
public interface PriorityService extends IService<Priority> {

    /**
     * 新增菜单
     * @param dto 菜单信息
     */
    void insert(PriorityDTO dto);

    /**
     * 编辑菜单
     * @param dto 菜单信息
     */
    void update(PriorityDTO dto);

    /**
     * 删除菜单
     * @param id 主键id
     * @param username 用户名
     */
    void delete(Long id, String username);

    /**
     * 菜单详情
     * @param id 主键id
     * @return
     */
    PriorityDTO selectById(Long id);

    /**
     * 菜单启用/停用
     * @param id 主键id
     * @param status 状态
     */
    void enabledStatus(Long id, Integer status);

    /**
     * 根据角色id获取权限
     * @param roleId 角色id
     * @return
     */
    List<PriorityVO> selectPriorsByRoleId(Long roleId);

    /**
     * 根据登录用户获取菜单
     * @param accountId 用户id
     * @param isSuper 超级管理员
     * @return
     */
    List<Priority> authorizeList(Long accountId, boolean isSuper);
}
